// _taskQueue.h
#pragma once
#include "cmdTask.h"
#include <my_header.h>

typedef struct _taskNode_s
{
    task_t *task;
    struct _taskNode_s *next; // next指针
} _taskNode_t;

typedef struct _taskQueue_s
{
    int size;
    _taskNode_t *front; // 首指针
    _taskNode_t *rear;  // 尾指针
} _taskQueue_t;

// 初始化队
void _taskQueue_init(_taskQueue_t *q);

// 入队
int _taskQueue_enque(_taskQueue_t *q, task_t *task);

// 出队
int _taskQueue_deque(_taskQueue_t *q);

// 判空
bool _taskQueue_is_empty(_taskQueue_t *q);

// 取队头元素
task_t *_taskQueue_front(_taskQueue_t *q);
